/*
 * Copyright (c) GoKeep by gokeep.org. 2022-2023. All rights reserved
 */
package org.gokeep.communication.service;

import org.gokeep.common.document.User;
import org.gokeep.common.dto.FriendDto;
import org.gokeep.common.dto.UserDetailDto;
import org.gokeep.common.dto.UserRegisterDto;

public interface UserService {
    /**
     * 创建用户
     *
     * @param user
     * @return
     */
    void createUser(User user);

    /**
     * 根据用户ID获取用于基础信息
     *
     * @param userId
     * @return
     */
    User getUserById(String userId);

    /**
     * 根据用户名获取
     * @param username
     * @return
     */
    User getUserByUsername(String username);

    /**
     * 获取好友列表
     * @param userId
     * @return
     */
    FriendDto getUserFriends(String userId);

    /**
     * 根据用户ID查询用户详情
     * @param userId
     * @return
     */
    UserDetailDto detail(String userId);

    /**
     * 注册用户
     * @param userRegister
     */
    void registerUser(UserRegisterDto userRegister);

    /**
     * 获取群组成员列表
     * @param groupId
     * @return
     */
    FriendDto getGroupMemberUser(String groupId);

}
